#if !defined(_Global_Def_)
#define _Global_Def_


#include <src/miscellaneous/OS_basic.h>
#include <src/math/BoundaryCondition/BoundaryCondition.h>
#include <src/link/Qhull_Link.h>
#include <src/link/Cdd_Link.h>


struct Qhull
{
	typedef QHULL::particles_list							particles_list;
	typedef QHULL::particle_type							particle_type;
	typedef QHULL::edge_type								edge_type;
//	typedef QHULL::qh_edges_set_type<particles_list>		edges_set_type;
};
struct Cdd
{
	typedef CDD::particles_list							particles_list;
	typedef CDD::particle_type							particle_type;
	typedef CDD::edge_type								edge_type;
//	typedef CDD::cdd_edges_set_type<particles_list>		edges_set_type;
};

typedef OS_Vector<double>		protected_array_type_1;
typedef Mod_Vector<double>				mod_array_1;


/*
struct Jmm
{
	typedef CDD::p_array_2								p_array_2;
	typedef CDD::particle_type								particle_type;
	typedef CDD::edge_type									edge_type;
	typedef CDD::jmm_edges_set<p_array_2,edge_type>	edges_set_type;
	typedef TimeAlgorithm<edges_set_type>					time_grid_type;
};
struct Cgal_Bind
{
	typedef CGAL::p_array_2								p_array_2;
	typedef CGAL::particle_type									particle_type;
	typedef CGAL::edge_type										edge_type;
	typedef CGAL::CGAL_edges_set_type							edges_set_type;
	typedef TimeAlgorithm<edges_set_type>						time_grid_type;
};
*/

//typedef Cdd Delaunay_Struct;
//typedef Jmm Delaunay_Struct;
//typedef Cgal_Bind Delaunay_Struct;

typedef Qhull Delaunay_Struct;

typedef Delaunay_Struct::particles_list			OS_particles_list_type;
typedef OS_particles_list_type::indice_type		OS_indice_type;
typedef Delaunay_Struct::particle_type			OS_particles_type;
//typedef Delaunay_Struct::edges_set_type			OS_edges_set_type;


#endif
